package cn.stronglink.asset.module.dam.utils.dataJsonUtils.req.send;

import java.util.List;
import java.util.regex.Pattern;


public class RackInfoMsgFormatUtil {
	
	
	//判断中文
	public static boolean isZh(String str){
	    Pattern pattern = Pattern.compile("[\u4e00-\u9fa5]");
	    return pattern.matcher(str).matches();   
	 }
	
	//判断一个String有几个字母， 几个中文
	public static int getStrLength(String str){
		
		//字符串： 拆分为单个字符---》总数： str.length(), 遍历找出分类后的数量
	    int StrLen=str.length();
	   // System.out.println("str.length()=="+StrLen);
	    int count=0;
	    
	    for(int i=0;i<StrLen;i++) {
	    	String single =str.substring(i, i+1);
	    	boolean b=isZh(single);
	        //System.out.println("single=="+single+"   isZh(single)==="+b);
	        
	    	if(b)count+=2;
	    	else  count++;
	    }
	    //System.out.println("字符串总长度==="+count);
	    return count;
	 }
	//追加空格
	public static String appendBlank(int sum,int len,String str){
		StringBuilder bu=new StringBuilder(str);
		
		for(int i=len;i<sum;i++) {
			bu.append(" ");
		} 
		//System.out.println(bu.toString()+"--tt");
		return bu.toString();
		
	 }
	
	//取出字符长度：最大值
	public static List<String> formatStr(List<String> list) {
		int max=1;
		
		for(int i=0;i<list.size()-1;i++) {
			int len1=getStrLength(list.get(i));
			int len2=list.get(i+1).length();
			
			max=len1>len2 ? len1: len2;
		}
		//System.out.println("长度最大值：---》"+ max);
		
		//若短的： 补加空格
		for(int i=0;i<list.size();i++) {
			int len1=getStrLength(list.get(i));
			list.set(i, appendBlank(max+2,len1,  list.get(i) ) );
		}
		return list;
	}
	
}
